﻿using System;
using System.Collections.Generic;
using System.Text;
using BarStructures.Deformed;

namespace BarStructures.Analysers
{
    public abstract class Analyser
    {
        public bool UseExistingIndexation { get; set; }

        public string Name { get; private set; }

        protected Model model = null;

        public Analyser(Model model, string name)
        {
            if (model == null)
                throw new ArgumentNullException();
            this.model = model;
            this.Name = name;
            this.UseExistingIndexation = false;
        }

        public abstract void Analyse();

        public abstract DeformedState GetDeformedStateForEigenValue(double eigenValue);

        public abstract List<double> GetEigenValuesList();

        public abstract List<double> GetEigenVecsListForEigenValue(double eigenValue);

        public abstract List<double> GetFullEigenVecsListForEigenValue(double eigenValue);
    }
}
